<?php

/**
 * alltosun.com  manage_user.php
 * ============================================================================
 * 版权所有 (C) 2009-2013 北京互动阳光科技有限公司，并保留所有权利。
 * 网站地址: http://www.alltosun.com
 * ----------------------------------------------------------------------------
 * 许可声明：这是一个开源程序，未经许可不得将本软件的整体或任何部分用于商业用途及再发布。
 * ============================================================================
 * $Author: 王德康 (wangdk@alltosun.com) $
 * $Date: 2016-4-2 下午5:48:49 $
 * $Id$
 */
class Action
{

    public function __call($action = '', $params = array()) {
        $user_list = array();
        $mobile = an_request('mobile', '');
        if ($mobile) {

            $filter['user_name'] = $mobile;
            $user_list = _model('user')->getList($filter, ' ORDER BY `id` DESC ');

            foreach ($user_list as $k => $v) {
                if ($v['parent_id'] > 0) {
                    $parent_user_info = _uri('user', $v['parent_id']);
                    $user_list[$k]['parent_user_name'] = $parent_user_info['user_name'];
                }

                // 获取用户的角色id
                $role_id = user_helper::get_user_role_id($v['id']);
                $role_info = user_helper::get_user_role_info($role_id);
                $user_list[$k]['role_type'] = @$role_info['title'];
                $user_list[$k]['role_id'] = $role_id;

                // 获取门店数量
                if ($role_id == user_config::AGENCY) {
                    // 旗下门店
                    $user_list[$k]['store_count'] = count(store_helper::get_dealers_store_list($v['id']));
                    // 员工
                    $user_list[$k]['pople_count'] = count(dealers_helper::get_dealers_staff_list($v['id']));
                    // 是否有进货
                    $user_list[$k]['order_count'] = count(order_helper::get_dealers_store_order_list($v['id']));

                } else {
                    if ($role_id == user_config::MARKETING) {

                        $user_list[$k]['store_count'] = count(store_helper::get_marketing_stores($v['id']));

                    } else {
                        if ($role_id == user_config::STORE_MANAGER || $role_id == user_config::STORE_OWNER) {

                            // 是否有进货
                            $user_list[$k]['order_count'] = order_helper::get_order_num_by_user_id($v['id']);
                        }
                    }
                }

            }
        }


        Response::assign('mobile', $mobile);
        Response::assign('user_list', $user_list);
        Response::display('admin/mange_user_list.html');
    }

    /**
     * 删除用户，比较危险的一个函数
     * @return array
     */
    public function delete() {
        $id = Request::getParam('id');

        if (!$id) {
            return '请选择要删除的内容';
        }

        return $this->update($id);
    }

    /**
     * 删除用户数据，慎用，不可恢复
     * @param unknown_type $id
     * @return multitype:string
     */
    public function update($id) {
        $info = _model('user')->read(array('mobile' => $id));
        if ($info) {

            $request = $info;
            $request['id'] = $info['mobile'];
            admin_log_helper::call_write_admin_log('user', 'manage_user', 'destroy', $request);

            // 经销商
            $role_id = user_helper::get_user_role_id($info['id']);
            if ($role_id == user_config::AGENCY) {

                // 旗下门店
                $store_count = count(store_helper::get_dealers_store_list($info['id']));
                if ($store_count) {
                    return array('info' => '当前经销商有门店存在，不能被删除!!');
                }

                // 员工
                $pople_count = count(dealers_helper::get_dealers_staff_list($info['id']));
                if ($pople_count) {
                    return array('info' => '当前经销商有旗下员工存在，不能被删除!');
                }

                // 是否有进货
                $order_count = count(order_helper::get_dealers_store_order_list($info['id']));
                if ($order_count) {
                    return array('info' => '当前门店已经有过下单，不能被删除!');
                }

                _model('user_store')->delete(array('user_id' => $info['id']));
                _model('store')->delete(array('user_id' => $info['id']));
                _model('user')->delete($info['id']);

                return array('info' => 'ok', 'msg' => '经销商删除成功！');

                // 市场人员
            } else {

                if ($role_id == user_config::MARKETING) {

                    $store_count = count(store_helper::get_marketing_stores($info['id']));

                    if ($store_count) {
                        return array('info' => '当前员工已经签约过门店，不能被删除!');
                    }

                    // echo 'MARKETING';
                    _model('user_marketing')->delete(array('marketing_id' => $info['id']));
                    _model('user')->delete($info['id']);

                    return array('info' => 'ok', 'msg' => '市场人员删除成功！');

                } else {

                    if ($role_id == user_config::STORE_MANAGER || $role_id == user_config::STORE_OWNER) {

                        // 是否有进货 echo 'STORE';
                        $order_count = order_helper::get_order_num_by_user_id($info['id']);
                        if ($order_count) {
                            return array('info' => '当前门店已经有过下单，不能被删除!');
                        }

                        // 是否有绑定的设备
                        $store = store_helper::get_owner_stores($info['id']);
                        if (!empty($store)) {
                            foreach ($store as $s) {
                                $device_count = count(device_helper::get_store_all_device_list_by_store_id($s['id']));
                                if ($device_count) {
                                    return array('info' => '当前门店有绑定的设备，请先解绑再删除!');
                                }
                            }
                        }

                        // 删除父级用户
                        $parent_list = _model('user')->getList(array('store_parent_id' => $info['id']));
                        if ($parent_list) {
                            foreach ($parent_list as $parent_info) {
                                _model('user')->delete($parent_info['id']);
                            }
                        }

                        // 删除总店
                        _model('user_store')->delete(array('user_id' => $info['id']));

                        // 删除分店
                        _model('store')->delete(array('owner_id' => $info['id']));
                        _model('user')->delete($info['id']);

                        return array('info' => 'ok', 'msg' => '门店删除成功!');
                    }
                }
            }
        }
    }

}